{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Power Splitter Demo\n",
    "\n",
    "This is an introductory demo for using angler for inverse design.   \n",
    "\n",
    "Here we will walk through designing a 50-50 power splitter.\n",
    "\n",
    "## Setup\n",
    "\n",
    "We'll first import all of the packages we need and set up our notebook."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "import matplotlib.pylab as plt\n",
    "import copy\n",
    "\n",
    "# add angler to path (not necessary if pip installed)\n",
    "import sys\n",
    "sys.path.append(\"..\")\n",
    "\n",
    "# import the main simulation and optimization classes\n",
    "from angler import Simulation, Optimization\n",
    "\n",
    "# import some structure generators\n",
    "from angler.structures import three_port, two_port\n",
    "\n",
    "%load_ext autoreload\n",
    "%autoreload 2\n",
    "%matplotlib inline"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Now let's define some of the parameters we'll be using in our optimization"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "# define the similation constants\n",
    "lambda0 = 2e-6              # free space wavelength (m)\n",
    "c0 = 3e8                    # speed of light in vacuum (m/s)\n",
    "omega = 2*np.pi*c0/lambda0  # angular frequency (2pi/s)\n",
    "dl = 1e-1                   # grid size (L0)\n",
    "NPML = [20, 20]             # number of pml grid points on x and y borders\n",
    "pol = 'Ez'                  # polarization (either 'Hz' or 'Ez')\n",
    "source_amp = 1e-9           # amplitude of modal source (make around 1 for nonlinear effects)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "# define material constants\n",
    "n_index = 2.44              # refractive index\n",
    "eps_m = n_index**2          # relative permittivity"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "# geometric parameters for a 1 -> 2 port device\n",
    "L = 6         # length of box (L0)\n",
    "H = 4         # height of box (L0)\n",
    "w = .3        # width of waveguides (L0)\n",
    "d = H/1.5     # distance between waveguides (L0)\n",
    "l = 5         # length of waveguide from PML to box (L0)\n",
    "spc = 3       # space between box and PML (L0)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Defining the Simulation Object\n",
    "Now, we can create an initial relative permittivity, define our design region, and create the `Simulation` object for our domain."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Computed a domain with 200 grids in x and 140 grids in y\n",
      "The simulation has 20 grids per free space wavelength\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# define permittivity of three port system\n",
    "eps_r, design_region = three_port(L, H, w, d, l, spc, dl, NPML, eps_m)\n",
    "(Nx, Ny) = eps_r.shape\n",
    "nx, ny = int(Nx/2), int(Ny/2)            # halfway grid points\n",
    "\n",
    "# make a new simulation object\n",
    "simulation = Simulation(omega, eps_r, dl, NPML, pol)\n",
    "\n",
    "print(\"Computed a domain with {} grids in x and {} grids in y\".format(Nx,Ny))\n",
    "print(\"The simulation has {} grids per free space wavelength\".format(int(lambda0/dl/simulation.L0)))\n",
    "\n",
    "# plot the permittivity distribution\n",
    "simulation.plt_eps(outline=False)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "`Simulation` objects are used for running the actual FDFD simulations and we define our optimizations over them.\n",
    "\n",
    "## Sources and Probes\n",
    "\n",
    "With our simulation defined, we may now define the modal profiles of our input and output ports.  \n",
    "\n",
    "We will first add a modal source to our simulation corresponding to the port on the left.\n",
    "\n",
    "Then, we'll create two temporary simulations that are identical to the original, add modal sources for the top and bottom ports, and use these to get numpy arrays corresponding to the top and bottom probes of the device.  While in the code we are labelling these `J_top` and `J_bot`, in the paper, these are called $\\mathbf{m}_{t}$ and $\\mathbf{m}_b$ respectively"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [],
   "source": [
    "# set the input waveguide modal source\n",
    "simulation.add_mode(neff=np.sqrt(eps_m), direction_normal='x', center=[NPML[0]+int(l/2/dl), ny], width=int(H/2/dl), scale=source_amp)\n",
    "simulation.setup_modes()\n",
    "\n",
    "# make a new simulation to get the modal profile of the top output port\n",
    "top = Simulation(omega, eps_r, dl, NPML, 'Ez')\n",
    "top.add_mode(neff=np.sqrt(eps_m), direction_normal='x', center=[-NPML[0]-int(l/2/dl), ny+int(d/2/dl)], width=int(H/2/dl))\n",
    "top.setup_modes()\n",
    "J_top = np.abs(top.src)\n",
    "\n",
    "# make a new simulation to get the modal profile of the bottom output port\n",
    "bot = Simulation(omega, eps_r, dl, NPML, 'Ez')\n",
    "bot.add_mode(neff=np.sqrt(eps_m), direction_normal='x', center=[-NPML[0]-int(l/2/dl), ny-int(d/2/dl)], width=int(H/2/dl))\n",
    "bot.setup_modes()\n",
    "J_bot = np.abs(bot.src)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Now we can use `J_top` and `J_bot` as probes in our objective function.  We'll no longer need the `top` and `bot` Simulations.\n",
    "\n",
    "We can plot solve the simulation for the electric and magnetic fields and then plot the results."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# set source and solve for electromagnetic fields\n",
    "(Hx, Hy, Ez) = simulation.solve_fields()\n",
    "simulation.plt_abs(outline=True, cbar=True);"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Normalizing\n",
    "\n",
    "As an optional step, we'll normalize the modal amplitudes such that $|J^T E|^2 = 1$ for perfect transmission to the port corresponding to $J$.\n",
    "\n",
    "To do this, we'll make another temporary simulation with just a straight waveguide of the same source as our original three port.\n",
    "\n",
    "We'll then compute $|J^T E|^2$ for the output port, and normalize `J_in` and `J_out` using this. "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "computed a scale of 2.7336058478275452e-17\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# compute straight line simulation\n",
    "eps_r_wg, _ = two_port(L, H, w, l, spc, dl, NPML, eps_start=eps_m)\n",
    "(Nx_wg, Ny_wg) = eps_r_wg.shape\n",
    "nx_wg, ny_wg = int(Nx_wg/2), int(Ny_wg/2)            # halfway grid points     \n",
    "simulation_wg = Simulation(omega, eps_r_wg, dl, NPML, 'Ez')\n",
    "simulation_wg.add_mode(np.sqrt(eps_m), 'x', [NPML[0]+int(l/2/dl), ny_wg], int(Ny/3), scale=source_amp)\n",
    "simulation_wg.setup_modes()\n",
    "\n",
    "# compute normalization\n",
    "sim_out = Simulation(omega, eps_r_wg, dl, NPML, 'Ez')\n",
    "sim_out.add_mode(np.sqrt(eps_m), 'x', [-NPML[0]-int(l/2/dl), ny], int(Ny/3))\n",
    "sim_out.setup_modes()\n",
    "J_out = np.abs(sim_out.src)\n",
    "(_, _, Ez_wg) = simulation_wg.solve_fields()\n",
    "SCALE = np.sum(np.square(np.abs(Ez_wg*J_out)))\n",
    "J_out = J_out\n",
    "print('computed a scale of {}'.format(SCALE))\n",
    "\n",
    "simulation_wg.plt_abs(outline=True, cbar=True);\n",
    "\n",
    "J_top = J_top / np.sqrt(SCALE)\n",
    "J_bot = J_bot / np.sqrt(SCALE)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Changing the design region\n",
    "\n",
    "Optionally, we can also change the design region to several different styles before optimization.  \n",
    "\n",
    "Here we'll use `random_sym` which randomly assigns each pixel within the design region betwee 1 and the maximum permittivity.  \n",
    "\n",
    "This is mirrored across y=0.\n",
    "\n",
    "Making it symmetric leads to more symmetric final devices."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {
    "collapsed": true
   },
   "outputs": [
    {
     "data": {
      "image/png": "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PHNTRnHIIYewaNEiAA466CAA3n33XQDatm0LQNeuXVlvvazSV1970kknAVkmouxm8uRsdWLp0qUAtGjRAsiyHl1/5513AvDAAw8AMG7cOJ588kkA3nrrLQCGDx+erl933XUBmDt3LgDbb789AGPHjgVgp512ol27dgApkzvvvPMAaNasGbfffjsAe+65JwAtW7YE8mxrr7324tlnn13ufQ8YMACArbbailNPPXW596ZMUJnY4MGDGTx4MAATJ05c7vv4zDPPpPcyYcIEAI499ljMGqpaA1yMcd/aAHc0MDyE0JIs0F1YyfUhxljxw7p37x71F9OKb+ONNwbg29/+NgAvvfQSAIsXL+bxxx8H4OyzzwZg5513BuCRRx6hdevWADz66KMAXHvttQD87Gc/A7LluZ///OdAFhABLrvsMiALgn/4wx+A7Ac6kJYFr7vuOgB69uzJ4sWLl3uulv5atGhBjx49ANJr3HvvvQHYbrvt+OUvfwlA3759gTwItmrVCoDddtuNJUuWAPmy5d13Z6sl++67bwpwCjrdunUDQH+P3nvvPZo2zf6/ccSIEQC8/fbbABxwwAEcf/zxQL58q/f9ox/9CMh+0GhJdJtttgFg1KhRQBaUmzdvDsC5554LZMumQFp6teLr3r07kydPbrSI1KZNm/id73ynsW4HwK9//espMcbun/Y1IYQmZHtss2OMh6zoniGEnYGBwDExxuaVvA5ncGZmJbeGMrgasmKSlvV9QQhhB7Ijc74JvA2MAQZU+gAHOKvXD37wAyDPDvbdd18AhgwZkpbPfvzjHwPwz3/+E4C//vWvbLDBBstdd8UVVwBwzDHHAFkmdcYZZwB5lqWlxpqaGm655RYAxo8fD8CBBx4IwPnnnw/AnDlz+NOf/gSQMqrp06cD0KRJk7SU+cMf/hCAV199FciyQy27ahmwT58+QF4QMnDgQE488UQA1l9/fSBfhjzooIPSx3bffXeAlG2qAGf99ddPRSYqcrnwwmw1ZfHixWy44YYAvPLKK0C+7KvMbPz48ek1KUvTfV5++WXmz58PwH333Qfky7Zmq2pN7MGFELYEDgYuAs75lC+9jiyo9YkxzlnZ5zjAmZmV3BrI4H5Dtty44ad9UYzxKw15iAOc1evmm28G8r2g5557DoCLLroo7U+NGzcOgF133RXIyva116b2gK98Jftv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\n",
      "text/plain": [
       "<Figure size 432x288 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# changes design region. 'style' can be one of {'full', 'empty', 'halfway', 'random', 'random_sym'}.\n",
    "simulation.init_design_region(design_region, eps_m, style='random_sym')\n",
    "simulation.plt_eps(outline=False)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Defining Objective Functions\n",
    "\n",
    "Now is one of the most important steps: defining the objective function for optimization / inverse design.\n",
    "\n",
    "To do this, we define a function `J` which takes in the linear fields as the first argument and the nonlinear fields as a second argument.\n",
    "\n",
    "Until we make this more flexible, if your problem is linear, you still need the nonlinear fields argument, but you dont have to use it within the body of the function. \n",
    "\n",
    "We require that you define your numpy operations within J using the autograd wrapper for numpy.\n",
    "\n",
    "This allows us to automatically compute the partial derivatives of $J$ w.r.t. $E$ and $E_{nl}$, which are used in the adjoint.  \n",
    "\n",
    "This is super helpful when you define complicated objective functions and dont feel like computing these by hand!\n",
    "\n",
    "Below is an example of an objective function where the top and bottom port transmissions are directly multiplied.\n",
    "\n",
    "`angler` will try to maximize `J` w.r.t the permittivity in the design region.  Since we're multiplying the transmissions here, a highest possible value of `J = 1` will occur when each port is at 50% transmission, which is what we want."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [],
   "source": [
    "# define objective function  (equal power transmission to bottom and top)\n",
    "import autograd.numpy as npa\n",
    "from angler.objective import Objective, obj_arg\n",
    "\n",
    "arg1 = obj_arg('ez', component='Ez', nl=False)\n",
    "\n",
    "def J(ez):\n",
    "    linear_top =     1*npa.sum(npa.square(npa.abs(ez*J_top)))\n",
    "    linear_bot =     1*npa.sum(npa.square(npa.abs(ez*J_bot)))\n",
    "    objfn = linear_top * linear_bot * 4\n",
    "    return objfn\n",
    "\n",
    "objective = Objective(J, arg_list=[arg1])"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Defining the Optimization\n",
    "\n",
    "Now we are ready to define the `Optimization`, which will perform the inverse design on top of our `simulation`.  \n",
    "\n",
    "We give the optimization our objective function, simulation object, design region, and specify the maximum permittivity to allow.\n",
    "\n",
    "Also, we pass in some optional arguments that define the filtering and projection that are used to create smooth feature sizes.\n",
    "\n",
    "`R` controls the minimum feature size.  \n",
    "`beta` controls how strongly to bias the permittivitiy to be either air or material.\n",
    "\n",
    "See the supplementary information of our paper (coming soon) for more details.\n",
    "\n",
    "The `Optimization` object takes a little bit of time to initialize because we need to set up the spatial filter."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      " 98% (149 of 151) |##################### | Elapsed Time: 0:00:17 ETA:   0:00:00"
     ]
    }
   ],
   "source": [
    "# make optimization object\n",
    "R = 4          # filter radius of curvature (pixels)  (takes a while to set up as R > 5-10)\n",
    "beta = 300     # projection strength\n",
    "eta= 0.50      # projection halfway\n",
    "\n",
    "optimization = Optimization(objective=objective, simulation=simulation, design_region=design_region, eps_m=eps_m, R=R, beta=beta, eta=eta)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Checking Adjoint Derivatives\n",
    "\n",
    "We allow users to check that their adjoint derivatives match finite difference numerical derivatives.\n",
    "\n",
    "This is good practice to make sure things are working correctly"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/Users/twh/autograd/autograd/tracer.py:14: UserWarning: Output seems independent of input.\n",
      "  warnings.warn(\"Output seems independent of input.\")\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "adjoint gradient   = [-0.001085226781334129, -0.0008954340205819703, 0.00022416322159380677, 0.00029548486060976834, -0.00025799129885916935]\n",
      "numerical gradient = [-0.0010844488452670976, -0.0008949635921383543, 0.00022252767979159815, 0.00029781386681358366, -0.00025940595972662184]\n"
     ]
    }
   ],
   "source": [
    "# check the derivatives (note, full derivatives are checked, linear and nonlinear no longer separate)\n",
    "(grad_avm, grad_num) = optimization.check_deriv(Npts=5, d_rho=5e-4)\n",
    "print('adjoint gradient   = {}\\nnumerical gradient = {}'.format(grad_avm, grad_num))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Running the Optimization\n",
    "\n",
    "Finally, we can run the optimization / inverse design.\n",
    "\n",
    "To do this, we simply call `Optimization.run()` with some parameters.\n",
    "\n",
    "You can try out different optimization methods and parameters, for more info, check out `angler/optimization.py`."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      " ObjectiveFn:   1.02 Iteration:  399/400 ETA:   0:00:00                        "
     ]
    }
   ],
   "source": [
    "# run optimization for 400 steps\n",
    "new_eps = optimization.run(method='lbfgs', Nsteps=400)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Plotting Results\n",
    "\n",
    "Optimization objects have methods for visualizing the results of the run:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 1440x216 with 5 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# plot the objective function end structure and fields\n",
    "f, (ax1, ax2, ax3) = plt.subplots(1, 3, figsize=(20,3))\n",
    "\n",
    "simulation.plt_eps(ax=ax1, outline=False)\n",
    "ax1.set_title('final permittivity distribution')\n",
    "\n",
    "optimization.plt_objs(ax=ax2)\n",
    "ax2.set_yscale('linear')\n",
    "\n",
    "(_,_,Ez) = simulation.solve_fields()\n",
    "simulation.plt_abs(ax=ax3, vmax=None)\n",
    "ax1.set_title('linear field')\n",
    "\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Finally we can measure power transmission of our final `simulation`."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "        -> linear transmission (top)        = 49.42 %\n",
      "        -> linear transmission (bottom)     = 49.35 %\n"
     ]
    }
   ],
   "source": [
    "# plot transmission characteristics\n",
    "W_in = simulation.W_in   # input power (W/um)\n",
    "\n",
    "# linear powers\n",
    "W_top_lin = simulation.flux_probe('x', [-NPML[0]-int(l/2/dl), ny+int(d/2/dl)], int(H/2/dl))\n",
    "W_bot_lin = simulation.flux_probe('x', [-NPML[0]-int(l/2/dl), ny-int(d/2/dl)], int(H/2/dl))\n",
    "\n",
    "print('        -> linear transmission (top)        = {:.2f} %'.format(W_top_lin / W_in * 100))\n",
    "print('        -> linear transmission (bottom)     = {:.2f} %'.format(W_bot_lin / W_in * 100))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Conclusion\n",
    "\n",
    "This was a simple demo of a linear problem.  \n",
    "\n",
    "For more functionality, please check out our other notebooks!\n",
    "\n",
    "And if you have a question, feature request, or want to contribute, feel free to reach out on Github."
   ]
  }
 ],
 "metadata": {
  "anaconda-cloud": {},
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.4"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
